home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / network / apple / TCPPB.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-05  |  9.8 KB  |  405 lines  |  [TEXT/R*ch]

  1. /*
  2.     File:        TCPPB.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __TCPPB__
  13. #define __TCPPB__
  14.  
  15. #ifndef __MACTCPCOMMONTYPES__
  16. #include <MacTCPCommonTypes.h>
  17. #endif
  18.  
  19. #define TCPCreate            30
  20. #define TCPPassiveOpen        31
  21. #define TCPActiveOpen        32
  22. #define TCPSend                34
  23. #define TCPNoCopyRcv        35
  24. #define TCPRcvBfrReturn        36
  25. #define TCPRcv                37
  26. #define TCPClose            38
  27. #define TCPAbort            39
  28. #define TCPStatus            40
  29. #define TCPExtendedStat        41
  30. #define TCPRelease            42
  31. #define TCPGlobalInfo        43
  32. #define TCPCtlMax            49
  33.  
  34. enum TCPEventCode {
  35.     TCPClosing                = 1,
  36.     TCPULPTimeout,
  37.     TCPTerminate,
  38.     TCPDataArrival,
  39.     TCPUrgent,
  40.     TCPICMPReceived,
  41.     lastEvent                = 32767
  42. };
  43.  
  44. typedef enum TCPEventCode TCPEventCode;
  45.  
  46. enum TCPTerminationReason {
  47.     TCPRemoteAbort            = 2,
  48.     TCPNetworkFailure,
  49.     TCPSecPrecMismatch,
  50.     TCPULPTimeoutTerminate,
  51.     TCPULPAbort,
  52.     TCPULPClose,
  53.     TCPServiceError,
  54.     lastReason                = 32767
  55. };
  56.  
  57. // typedef TCPTerminationReason TCPTerminationReason;
  58.  
  59. typedef pascal void (*TCPNotifyProcPtr)(StreamPtr tcpStream, unsigned short eventCode, Ptr userDataPtr, unsigned short terminReason, struct ICMPReport *icmpMsg);
  60.  
  61. enum {
  62.     uppTCPNotifyProcInfo = kPascalStackBased
  63.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(StreamPtr)))
  64.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned short)))
  65.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Ptr)))
  66.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(unsigned short)))
  67.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(struct ICMPReport*)))
  68. };
  69.  
  70. #if USESROUTINEDESCRIPTORS
  71. typedef UniversalProcPtr TCPNotifyUPP;
  72.  
  73. #define CallTCPNotifyProc(userRoutine, tcpStream, eventCode, userDataPtr, terminReason, icmpMsg)        \
  74.         CallUniversalProc((UniversalProcPtr)userRoutine, uppTCPNotifyProcInfo, tcpStream, eventCode, userDataPtr, terminReason, icmpMsg)
  75. #define NewTCPNotifyProc(userRoutine)        \
  76.         (TCPNotifyUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppTCPNotifyProcInfo, GetCurrentISA())
  77. #else
  78. typedef TCPNotifyProcPtr TCPNotifyUPP;
  79.  
  80. #define CallTCPNotifyProc(userRoutine, tcpStream, eventCode, userDataPtr, terminReason, icmpMsg)        \
  81.         (*userRoutine)(tcpStream, eventCode, userDataPtr, terminReason, icmpMsg)
  82. #define NewTCPNotifyProc(userRoutine)        \
  83.         (TCPNotifyUPP)(userRoutine)
  84. #endif
  85.  
  86. typedef TCPNotifyProcPtr TCPNotifyProc;
  87.  
  88. typedef void (*TCPIOCompletionProcPtr)(struct TCPiopb *iopb);
  89.  
  90. enum {
  91.     uppTCPIOCompletionProcInfo = kCStackBased
  92.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(struct TCPiopb*)))
  93. };
  94.  
  95. #if USESROUTINEDESCRIPTORS
  96. typedef UniversalProcPtr TCPIOCompletionUPP;
  97.  
  98. #define CallTCPIOCompletionProc(userRoutine, iopb)        \
  99.         CallUniversalProc((UniversalProcPtr)userRoutine, uppTCPIOCompletionProcInfo, iopb)
  100. #define NewTCPIOCompletionProc(userRoutine)        \
  101.         (TCPIOCompletionUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppTCPIOCompletionProcInfo, GetCurrentISA())
  102. #else
  103. typedef TCPIOCompletionProcPtr TCPIOCompletionUPP;
  104.  
  105. #define CallTCPIOCompletionProc(userRoutine, iopb)        \
  106.         (*userRoutine)(iopb)
  107. #define NewTCPIOCompletionProc(userRoutine)        \
  108.         (TCPIOCompletionUPP)(userRoutine)
  109. #endif
  110.  
  111. typedef TCPIOCompletionProcPtr TCPIOCompletionProc;
  112.  
  113. typedef unsigned short tcp_port;
  114.  
  115. typedef unsigned char byte;
  116.  
  117. enum  {                    /* ValidityFlags */
  118.     timeoutValue                = 0x80,
  119.     timeoutAction                = 0x40,
  120.     typeOfService                = 0x20,
  121.     precedence                    = 0x10
  122. };
  123.  
  124. enum  {                    /* TOSFlags */
  125.     lowDelay                    = 0x01,
  126.     throughPut                    = 0x02,
  127.     reliability                    = 0x04
  128. };
  129.  
  130. #if defined(powerc) || defined (__powerc)
  131. #pragma options align=mac68k
  132. #endif
  133. struct TCPCreatePB {
  134.     Ptr                            rcvBuff;
  135.     unsigned long                rcvBuffLen;
  136.     TCPNotifyProc                notifyProc;
  137.     Ptr                            userDataPtr;
  138. };
  139. #if defined(powerc) || defined(__powerc)
  140. #pragma options align=reset
  141. #endif
  142.  
  143. typedef struct TCPCreatePB TCPCreatePB;
  144.  
  145. #if defined(powerc) || defined (__powerc)
  146. #pragma options align=mac68k
  147. #endif
  148. struct TCPOpenPB {
  149.     byte                        ulpTimeoutValue;
  150.     byte                        ulpTimeoutAction;
  151.     byte                        validityFlags;
  152.     byte                        commandTimeoutValue;
  153.     ip_addr                        remoteHost;
  154.     tcp_port                    remotePort;
  155.     ip_addr                        localHost;
  156.     tcp_port                    localPort;
  157.     byte                        tosFlags;
  158.     byte                        precedence;
  159.     Boolean                        dontFrag;
  160.     byte                        timeToLive;
  161.     byte                        security;
  162.     byte                        optionCnt;
  163.     byte                        options[40];
  164.     Ptr                            userDataPtr;
  165. };
  166. #if defined(powerc) || defined(__powerc)
  167. #pragma options align=reset
  168. #endif
  169.  
  170. typedef struct TCPOpenPB TCPOpenPB;
  171.  
  172. #if defined(powerc) || defined (__powerc)
  173. #pragma options align=mac68k
  174. #endif
  175. struct TCPSendPB {
  176.     byte                        ulpTimeoutValue;
  177.     byte                        ulpTimeoutAction;
  178.     byte                        validityFlags;
  179.     Boolean                        pushFlag;
  180.     Boolean                        urgentFlag;
  181.     Ptr                            wdsPtr;
  182.     unsigned long                sendFree;
  183.     unsigned short                sendLength;
  184.     Ptr                            userDataPtr;
  185. };
  186. #if defined(powerc) || defined(__powerc)
  187. #pragma options align=reset
  188. #endif
  189.  
  190. typedef struct TCPSendPB TCPSendPB;
  191.  
  192. #if defined(powerc) || defined (__powerc)
  193. #pragma options align=mac68k
  194. #endif
  195. struct TCPReceivePB {
  196.     byte                        commandTimeoutValue;
  197.     byte                        filler;
  198.     Boolean                        markFlag;
  199.     Boolean                        urgentFlag;
  200.     Ptr                            rcvBuff;
  201.     unsigned short                rcvBuffLen;
  202.     Ptr                            rdsPtr;
  203.     unsigned short                rdsLength;
  204.     unsigned short                secondTimeStamp;
  205.     Ptr                            userDataPtr;
  206. };
  207. #if defined(powerc) || defined(__powerc)
  208. #pragma options align=reset
  209. #endif
  210.  
  211. typedef struct TCPReceivePB TCPReceivePB;
  212.  
  213. #if defined(powerc) || defined (__powerc)
  214. #pragma options align=mac68k
  215. #endif
  216. struct TCPClosePB {
  217.     byte                        ulpTimeoutValue;
  218.     byte                        ulpTimeoutAction;
  219.     byte                        validityFlags;
  220.     Ptr                            userDataPtr;
  221. };
  222. #if defined(powerc) || defined(__powerc)
  223. #pragma options align=reset
  224. #endif
  225.  
  226. typedef struct TCPClosePB TCPClosePB;
  227.  
  228. #if defined(powerc) || defined (__powerc)
  229. #pragma options align=mac68k
  230. #endif
  231. struct HistoBucket {
  232.     unsigned short                value;
  233.     unsigned long                counter;
  234. };
  235. #if defined(powerc) || defined(__powerc)
  236. #pragma options align=reset
  237. #endif
  238.  
  239. typedef struct HistoBucket HistoBucket;
  240.  
  241. #define NumOfHistoBuckets 7
  242.  
  243. #if defined(powerc) || defined (__powerc)
  244. #pragma options align=mac68k
  245. #endif
  246. struct TCPConnectionStats {
  247.     unsigned long                dataPktsRcvd;
  248.     unsigned long                dataPktsSent;
  249.     unsigned long                dataPktsResent;
  250.     unsigned long                bytesRcvd;
  251.     unsigned long                bytesRcvdDup;
  252.     unsigned long                bytesRcvdPastWindow;
  253.     unsigned long                bytesSent;
  254.     unsigned long                bytesResent;
  255.     unsigned short                numHistoBuckets;
  256.     struct HistoBucket            sentSizeHisto[NumOfHistoBuckets];
  257.     unsigned short                lastRTT;
  258.     unsigned short                tmrSRTT;
  259.     unsigned short                rttVariance;
  260.     unsigned short                tmrRTO;
  261.     byte                        sendTries;
  262.     byte                        sourchQuenchRcvd;
  263. };
  264. #if defined(powerc) || defined(__powerc)
  265. #pragma options align=reset
  266. #endif
  267.  
  268. typedef struct TCPConnectionStats TCPConnectionStats;
  269.  
  270. #if defined(powerc) || defined (__powerc)
  271. #pragma options align=mac68k
  272. #endif
  273. struct TCPStatusPB {
  274.     byte                        ulpTimeoutValue;
  275.     byte                        ulpTimeoutAction;
  276.     long                        unused;
  277.     ip_addr                        remoteHost;
  278.     tcp_port                    remotePort;
  279.     ip_addr                        localHost;
  280.     tcp_port                    localPort;
  281.     byte                        tosFlags;
  282.     byte                        precedence;
  283.     byte                        connectionState;
  284.     unsigned short                sendWindow;
  285.     unsigned short                rcvWindow;
  286.     unsigned short                amtUnackedData;
  287.     unsigned short                amtUnreadData;
  288.     Ptr                            securityLevelPtr;
  289.     unsigned long                sendUnacked;
  290.     unsigned long                sendNext;
  291.     unsigned long                congestionWindow;
  292.     unsigned long                rcvNext;
  293.     unsigned long                srtt;
  294.     unsigned long                lastRTT;
  295.     unsigned long                sendMaxSegSize;
  296.     struct TCPConnectionStats    *connStatPtr;
  297.     Ptr                            userDataPtr;
  298. };
  299. #if defined(powerc) || defined(__powerc)
  300. #pragma options align=reset
  301. #endif
  302.  
  303. typedef struct TCPStatusPB TCPStatusPB;
  304.  
  305. #if defined(powerc) || defined (__powerc)
  306. #pragma options align=mac68k
  307. #endif
  308. struct TCPAbortPB {
  309.     Ptr                            userDataPtr;
  310. };
  311. #if defined(powerc) || defined(__powerc)
  312. #pragma options align=reset
  313. #endif
  314.  
  315. typedef struct TCPAbortPB TCPAbortPB;
  316.  
  317. #if defined(powerc) || defined (__powerc)
  318. #pragma options align=mac68k
  319. #endif
  320. struct TCPParam {
  321.     unsigned long                tcpRtoA;
  322.     unsigned long                tcpRtoMin;
  323.     unsigned long                tcpRtoMax;
  324.     unsigned long                tcpMaxSegSize;
  325.     unsigned long                tcpMaxConn;
  326.     unsigned long                tcpMaxWindow;
  327. };
  328. #if defined(powerc) || defined(__powerc)
  329. #pragma options align=reset
  330. #endif
  331.  
  332. typedef struct TCPParam TCPParam;
  333.  
  334. #if defined(powerc) || defined (__powerc)
  335. #pragma options align=mac68k
  336. #endif
  337. struct TCPStats {
  338.     unsigned long                tcpConnAttempts;
  339.     unsigned long                tcpConnOpened;
  340.     unsigned long                tcpConnAccepted;
  341.     unsigned long                tcpConnClosed;
  342.     unsigned long                tcpConnAborted;
  343.     unsigned long                tcpOctetsIn;
  344.     unsigned long                tcpOctetsOut;
  345.     unsigned long                tcpOctetsInDup;
  346.     unsigned long                tcpOctetsRetrans;
  347.     unsigned long                tcpInputPkts;
  348.     unsigned long                tcpOutputPkts;
  349.     unsigned long                tcpDupPkts;
  350.     unsigned long                tcpRetransPkts;
  351. };
  352. #if defined(powerc) || defined(__powerc)
  353. #pragma options align=reset
  354. #endif
  355.  
  356. typedef struct TCPStats TCPStats;
  357.  
  358. #if defined(powerc) || defined (__powerc)
  359. #pragma options align=mac68k
  360. #endif
  361. struct TCPGlobalInfoPB {
  362.     struct TCPParam                *tcpParamPtr;
  363.     struct TCPStats                *tcpStatsPtr;
  364.     StreamPtr                    *tcpCDBTable[1];
  365.     Ptr                            userDataPtr;
  366.     unsigned short                maxTCPConnections;
  367. };
  368. #if defined(powerc) || defined(__powerc)
  369. #pragma options align=reset
  370. #endif
  371.  
  372. typedef struct TCPGlobalInfoPB TCPGlobalInfoPB;
  373.  
  374. #if defined(powerc) || defined (__powerc)
  375. #pragma options align=mac68k
  376. #endif
  377. struct TCPiopb {
  378.     char                        fill12[12];
  379.     TCPIOCompletionProc            ioCompletion;
  380.     short                        ioResult;
  381.     char                        *ioNamePtr;
  382.     short                        ioVRefNum;
  383.     short                        ioCRefNum;
  384.     short                        csCode;
  385.     StreamPtr                    tcpStream;
  386.     union {
  387.         struct TCPCreatePB            create;
  388.         struct TCPOpenPB            open;
  389.         struct TCPSendPB            send;
  390.         struct TCPReceivePB            receive;
  391.         struct TCPClosePB            close;
  392.         struct TCPAbortPB            abort;
  393.         struct TCPStatusPB            status;
  394.         struct TCPGlobalInfoPB        globalInfo;
  395.     } csParam;
  396. };
  397. #if defined(powerc) || defined(__powerc)
  398. #pragma options align=reset
  399. #endif
  400.  
  401. typedef struct TCPiopb TCPiopb;
  402.  
  403. #endif
  404.  
  405.